import request from "@/utils/request";

const CUSTOMER_BASE_URL = "/admin/customer";

const CustomerAPI = {
  /**
   * 获取客户分页列表
   * @param {Object} queryParams 查询参数
   * @returns {Promise} 客户分页列表
   */
  getPage(queryParams) {
    return request({
      url: `${CUSTOMER_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    }).then((page) => {
      // 这里的 `page` 就是拦截器返回的 data.data（Page<Customer>）
      return {
        records: page.records || [],
        total: page.total || 0,
      };
    });
  },

  /**
   * 添加客户
   * @param {Object} data 客户表单数据
   * @returns {Promise} 添加结果
   */
  create(data) {
    return request({
      url: `${CUSTOMER_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 修改客户
   * @param {Object} data 客户表单数据
   * @returns {Promise} 修改结果
   */
  update(data) {
    return request({
      url: `${CUSTOMER_BASE_URL}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 删除客户
   * @param {string} id 客户ID
   * @returns {Promise} 删除结果
   */
  delete(id) {
    return request({
      url: `${CUSTOMER_BASE_URL}/${id}`,
      method: "delete",
    });
  },

  /**
   * 修改客户状态
   * @param {string} id 客户ID
   * @param {string} status 状态值
   * @returns {Promise} 修改结果
   */
  changeStatus(id, status) {
    return request({
      url: `${CUSTOMER_BASE_URL}/${id}/status`,
      method: "post",
      params: { status },
    });
  },

  /**
   * 获取客户下的站点列表
   * @param {string} customerId 客户ID
   * @returns {Promise} 站点列表
   */
  getCustomerSites(customerId) {
    return request({
      url: `${CUSTOMER_BASE_URL}/${customerId}/sites`,
      method: "get",
    });
  },

  /**
   * 获取客户列表（不分页）
   * @returns {Promise} 客户列表
   */
  getCustomerList() {
    return request({
      url: `${CUSTOMER_BASE_URL}/list`,
      method: "get",
    });
  },
};

export default CustomerAPI; 